package com.syg;

import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.Resource;

/**
 * @author syg
 * @date 2021年11月4日15:01:43
 * @version 1.0
 */
@Component
public class StaticMethodGetBean03 {

    @Resource
    private AutoMethodDemoService autoMethodDemoService;

    private static AutoMethodDemoService staticMethodService;

    /**
     * 应用 PostConstruct 注释的方法必须遵守以下所有标准：
     *
     * 该方法不得有任何参数，除非是在 EJB 拦截器 (interceptor) 的情况下，根据 EJB 规范的定义，在这种情况下它将带有一个 InvocationContext 对象 ；
     * 该方法的返回类型必须为 void；
     * 该方法不得抛出已检查异常；
     * 应用 PostConstruct 的方法可以是 public、protected、package private 或 private；
     * 除了应用程序客户端之外，该方法不能是 static；
     * 该方法可以是 final；
     * 如果该方法抛出未检查异常，那么不得将类放入服务中，除非是能够处理异常并可从中恢复的 EJB。
     */
    @PostConstruct
    public void init() {
        staticMethodService = autoMethodDemoService;
    }

    public static void staticMethod() {
        staticMethodService.getMobileNo();
    }
}
